<?php
/*
Copyright (C) 2009 de Flotte Maxence

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
?>
<?php
class ZzSessionGroup {
 /**
	* Reload group on session from files or from the db
	*/
	static function reload() {
		$idUser = $_SESSION['user'];
		$_SESSION['group'] = array();
		//Store groups on files
		if($GLOBALS['storeGroupsInFiles']) {
			if(!file_exists($GLOBALS['cwd'].'/ZzGroup/'.$idUser.'.php'))
				ZzSessionGroup::createGroupFile();
			file_get_contents($GLOBALS['cwd'].'/ZzGroup/'.$idUser.'.php');
			$_SESSION['group'] = unserialize(file_get_contents($GLOBALS['cwd'].'/ZzGroup/'.$idUser.'.php'));
		}
		else {
			//Recupération des groupes
			$_ligne = ZzSQL::query('SELECT id_group From '.$GLOBALS['prefix'].'_groupuser WHERE id_user=?', array($idUser));
			foreach($_ligne as $group)
				$_SESSION['group'][] = $group['id_group'];
		}
	}
	
 /**
	* rCreate groupFile from the db
	*/
	static function createGroupFile() {
		$idUser = $_SESSION['user'];
		$_groups = array();
		$_ligne = ZzSQL::query('SELECT id_group From '.$GLOBALS['prefix'].'_groupuser WHERE id_user=?', array($idUser));
			foreach($_ligne as $group)
				$_groups[] = intval($group['id_group']);
		if(!file_put_contents($GLOBALS['cwd'].'/ZzGroup/'.$idUser.'.php',serialize($_groups)))
			throw new ZzError('Can not write '.$GLOBALS['cwd'].'/ZzGroup/'.$idUser.'.php');
	}
}
?>
